package com.heatup.apt.api.service.impl;

import java.util.Date;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.heatup.apt.api.service.UserStoreService;
import com.heatup.apt.common.dao.user.UserStoreChangeLogMapper;
import com.heatup.apt.common.dao.user.UserStoreMapper;
import com.heatup.apt.model.user.UserStore;
import com.heatup.apt.model.user.UserStoreChangeLog;

@Service
public class UserStoreServiceImpl implements UserStoreService {

	@Autowired
	private UserStoreMapper userStoreMapper;
	
	@Autowired
	UserStoreChangeLogMapper userStoreChangeLogMapper;
	
	/**
	 * 查询绑定门店
	 */
	public Map<String, Object> getUserStore(Integer userId) {
		return userStoreMapper.getUserStore(userId);
	}
	
	/**
	 * 更新
	 */
	public int update(Integer storeId, Integer userId) {
		UserStore userStore = new UserStore();
		userStore.setCreatedBy(userId);
		userStore.setStoreId(storeId);
		userStore.setUserId(userId);
		userStore.setCreatedTime(new Date());
		userStore.setUpdateBy(userId);
		userStore.setUpdateTime(new Date());
		
		Map<String, Object> map = this.getUserStore(userStore.getUserId());
		if(map == null || map.get("id") == null) {
			return userStoreMapper.insert(userStore);
		}
		//更改门店日志
		UserStoreChangeLog uscl = new UserStoreChangeLog();
		uscl.setCreatedBy(userId);
		uscl.setCreatedTime(new Date());
		uscl.setStoreId(storeId);
		uscl.setUserId(userId);
		uscl.setRemark("用户选择");
		userStoreChangeLogMapper.insert(uscl);
		return userStoreMapper.updateUserStore(userStore.getStoreId(), userStore.getUserId());
	}
	
	/**
	 * 插入
	 * @param userStore
	 * @return
	 */
	public int insert(UserStore userStore){
		Map<String, Object> map = this.getUserStore(userStore.getUserId());
		if(map.get("id") == null) {
			return userStoreMapper.insert(userStore);
		}
		return 0;
	}
}
